package com.zp.business.entity.lab.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zp.common.core.entity.BaseEntity;
import com.zp.common.excel.annotation.ExcelDictFormat;
import com.zp.common.excel.convert.ExcelDictConvert;
import lombok.Data;

import java.util.Date;
import java.util.List;


/**
 * 检验申请主视图对象
 *
 * @author zhang peng
 * @ date 2024-03-05
 */
@Data
@ExcelIgnoreUnannotated
public class LabApplyVo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private String id;

    /**
     * 就诊记录ID
     */
    @ExcelProperty(value = "就诊记录ID")
    private String clinicId;

    /**
     * 开单科室
     */
    @ExcelProperty(value = "开单科室")
    private String applyDept;

    /**
     * 开单人
     */
    private String applyUser;

    /**
     * 申请序号
     */
    @ExcelProperty(value = "申请序号")
    private String applyNo;

    /**
     * 病人信息Id
     */
    @ExcelProperty(value = "病人信息Id")
    private String patientId;

    /**
     * 住院/门诊
     */
    @ExcelProperty(value = "住院/门诊", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "clinic_or_visit")
    private String inoroutFlag;

    /**
     * 确认标志
     */
    @ExcelProperty(value = "确认标志", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_common_status")
    private String confirmFlag;

    /**
     * 确认人
     */
    @ExcelProperty(value = "确认人")
    private String confirmUser;

    /**
     * 取消确认人
     */
    @ExcelProperty(value = "取消确认人")
    private String cancelConfirmUser;

    /**
     * 收费标志
     */
    @ExcelProperty(value = "收费标志", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "charge_flag_dict")
    private String chargeFlag;

    /**
     * 执行科室
     */
    @ExcelProperty(value = "执行科室")
    private String implementDept;

    /**
     * 是否加急
     */
    @ExcelProperty(value = "是否加急", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_common_status")
    private String isUrgent;

    /**
     * 标本
     */
    @ExcelProperty(value = "标本")
    private String specimen;

    /**
     * 标本说明
     */
    @ExcelProperty(value = "标本说明")
    private String specimenExplain;

    /**
     * 机构ID
     */
    @ExcelProperty(value = "机构ID")
    private String orgId;

    /**
     * 备注信息
     */
    @ExcelProperty(value = "备注信息")
    private String remarks;

    /**
     * 住院Id
     */
    @ExcelProperty(value = "住院Id")
    private String visitId;

    /**
     * 门诊医嘱id
     */
    @ExcelProperty(value = "门诊医嘱id")
    private String clinicOrdersId;

    /**
     * 是否体检
     */
    @ExcelProperty(value = "是否体检", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_common_status")
    private String isPhy;

    /**
     * 结果状态
     */
    @ExcelProperty(value = "结果状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_common_status")
    private String resultStatus;

    /**
     * 结果时间
     */
    @ExcelProperty(value = "结果时间")
    private Date resultsRptDateTime;

    /**
     * 转录员
     */
    @ExcelProperty(value = "转录员")
    private String transcriptionist;

    /**
     * $column.columnComment
     */
    @ExcelProperty(value = "${comment}", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "$column.readConverterExp()")
    private String naYaoTiShi;

    /**
     * 建议
     */
    @ExcelProperty(value = "建议")
    private String jianYi;

    /**
     * 示例
     */
    @ExcelProperty(value = "示例")
    private String sampleId;

    /**
     * 核对人
     */
    @ExcelProperty(value = "核对人")
    private String auditor;

    /**
     * 注释
     */
    @ExcelProperty(value = "注释")
    private String notes;

    /**
     * 确认时间
     */
    @ExcelProperty(value = "确认时间")
    private Date confirmDate;

    /**
     * 取消确认状态
     */
    @ExcelProperty(value = "取消确认状态")
    private String confirmCancelFlag;

    /**
     * 真实开单时间
     */
    @ExcelProperty(value = "真实开单时间")
    private Date realDate;

    /**
     * 症状
     */
    private String symptom;

    /**
     * 体征
     */
    private String sign;

    /**
     * 临床诊断
     */
    private String clinicalDiag;

    /**
     * 其他诊断
     */
    private String relevantDiag;

    /**
     * 化验结果
     */
    private String relevantResult;

    /**
     * 执行人
     */
    private String implementUser;

    private List<LabItemVo> LabItemVoList;


    /**
     * 组号
     */
    private String groupNo;

    private String implementDeptName;
    private String applyDeptName;
    private String cancelConfirmUserName;
    private String confirmUserName;
    private String labTypeName;
    private String applyUserName;


    private String name;
    private String clinicNo;
    private String hospitalNo;
    private String sex;
    private Integer age;
    private Integer ageMonth;
    private Integer ageDay;
    private Integer ageHours;
    private String address;
    private String phone;
    private String idNo;
    private String birthdayDate;
    private Date visitDate;

    /**
     * 费别
     */
    private String chargeType;
}
